package cn.lovemmd.model.admin.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import cn.lovemmd.model.admin.entity.Model;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 模型Mapper接口
 * 
 * @author TLS
 * @since 2024-01-01
 */
@Mapper
public interface ModelMapper extends BaseMapper<Model> {

    /**
     * 分页查询模型列表
     * 
     * @param page 分页参数
     * @param search 搜索关键字
     * @param occupation 职业筛选
     * @return 分页结果
     */
    IPage<Model> selectModelPage(Page<Model> page, 
                                @Param("search") String search, 
                                @Param("occupation") String occupation);

    /**
     * 根据职业统计模型数量
     * 
     * @return 职业统计列表
     */
    List<Object> selectOccupationStats();

    /**
     * 根据ID查询模型详情
     * 
     * @param id 模型ID
     * @return 模型详情
     */
    Model selectModelById(@Param("id") Long id);

    /**
     * 批量删除模型
     * 
     * @param ids 模型ID列表
     * @return 删除数量
     */
    int deleteBatchIds(@Param("ids") List<Long> ids);

    /**
     * 最近新增模型
     */
    @Select("SELECT m_id AS id, m_name AS name, create_time FROM model_list ORDER BY create_time DESC LIMIT #{limit}")
    List<Object> selectRecentModels(@Param("limit") int limit);
}
